home *** CD-ROM | disk | FTP | other *** search
- package com.ibm.xml.parser;
-
- import com.ibm.xml.framework.AttrPool;
- import com.ibm.xml.framework.XMLParser;
- import com.ibm.xml.framework.XMLValidationHandler;
- import com.ibm.xml.internal.DefaultScanner;
- import com.ibm.xml.internal.ErrorCode;
- import com.ibm.xml.parsers.NonValidatingTXDOMParser;
- import com.ibm.xml.parsers.TXDOMParser;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.Reader;
- import java.util.Hashtable;
- import java.util.Vector;
- import org.w3c.dom.Node;
- import org.xml.sax.InputSource;
- import org.xml.sax.Locator;
- import org.xml.sax.SAXException;
-
- public class Parser extends TXDOMParser {
- private static final String ALL_TAG_NAMES = " ALL ";
- private static final boolean DEBUG = false;
- StreamProducer streamProducer;
- ErrorListener errorListener;
- int errorCount;
- int validityFailureCount;
- int warnCount;
- boolean isKeepComment;
- boolean isEndBy1stError;
- boolean isProcessNamespace;
- boolean isProcessExternalDTD;
- boolean isWarningRedefinedEntity;
- boolean isWarningNoXMLDecl;
- boolean isWarningNoDoctypeDecl;
- ReferenceHandler referenceHandler;
- TagHandler tagHandler;
- Vector preRootHandlers;
- Vector piHandlers;
- Hashtable elementHandlerHash;
- SAXDriver saxdriver;
-
- public Parser(String var1) {
- this(var1, (ErrorListener)null, (StreamProducer)null);
- }
-
- public Parser(String var1, ErrorListener var2, StreamProducer var3) {
- Stderr var4 = var2 != null && var3 != null ? null : new Stderr(var1);
- this.errorListener = (ErrorListener)(var2 != null ? var2 : var4);
- this.streamProducer = (StreamProducer)(var3 != null ? var3 : var4);
- this.initParser();
- }
-
- private void initParser() {
- this.setAllowJavaEncodingName(false);
- this.setEndBy1stError(true);
- this.setExpandEntityReferences(false);
- this.setKeepComment(true);
- this.setProcessExternalDTD(true);
- this.setProcessNamespace(false);
- this.setWarningNoDoctypeDecl(false);
- this.setWarningNoXMLDecl(true);
- this.setWarningRedefinedEntity(true);
- Handler var1 = new Handler(this);
- ((XMLParser)this).setDocumentHandler(var1);
- ((XMLParser)this).setDocumentTypeHandler(var1);
- ((XMLParser)this).setErrorHandler(var1);
- ((XMLParser)this).getEntityHandler().setEntityResolver(var1);
- }
-
- public void setElementFactory(TXDocument var1) {
- super.fDocument = var1;
- }
-
- public Source getInputStream(String var1, String var2, String var3) throws IOException {
- return this.streamProducer.getInputStream(var1, var2, var3);
- }
-
- public void closeInputStream(Source var1) {
- this.streamProducer.closeInputStream(var1);
- }
-
- public void loadCatalog(Reader var1) throws IOException {
- this.streamProducer.loadCatalog(var1);
- }
-
- public void setTagHandler(TagHandler var1) {
- this.tagHandler = var1;
- }
-
- public void setReferenceHandler(ReferenceHandler var1) {
- this.referenceHandler = var1;
- }
-
- public void addPreRootHandler(PreRootHandler var1) {
- if (this.preRootHandlers == null) {
- this.preRootHandlers = new Vector();
- }
-
- this.preRootHandlers.addElement(var1);
- }
-
- public void addPIHandler(PIHandler var1) {
- if (this.piHandlers == null) {
- this.piHandlers = new Vector();
- }
-
- this.piHandlers.addElement(var1);
- }
-
- public void addElementHandler(ElementHandler var1) {
- this.addElementHandler(var1, " ALL ");
- }
-
- public void addElementHandler(ElementHandler var1, String var2) {
- if (this.elementHandlerHash == null) {
- this.elementHandlerHash = new Hashtable();
- }
-
- Vector var3 = (Vector)this.elementHandlerHash.get(var2);
- if (var3 == null) {
- var3 = new Vector();
- this.elementHandlerHash.put(var2, var3);
- }
-
- var3.addElement(var1);
- }
-
- void setSAXDriver(SAXDriver var1) {
- this.saxdriver = var1;
- if (var1 != null) {
- ((NonValidatingTXDOMParser)this).setNormalizeTextNodes(false);
- }
-
- }
-
- public int getNumberOfErrors() {
- return this.errorCount + this.validityFailureCount;
- }
-
- public int getNumberOfWarnings() {
- return this.warnCount;
- }
-
- public void setKeepComment(boolean var1) {
- this.isKeepComment = var1;
- }
-
- public void setExpandEntityReferences(boolean var1) {
- super.setExpandEntityReferences(var1);
- }
-
- public void setProcessExternalDTD(boolean var1) {
- this.isProcessExternalDTD = var1;
- }
-
- public void setProcessNamespace(boolean var1) {
- this.isProcessNamespace = var1;
- if (var1) {
- ((XMLParser)this).setValidationHandler((XMLValidationHandler)null);
- } else {
- ((XMLParser)this).useDefaultValidationHandler();
- }
- }
-
- public void setAllowJavaEncodingName(boolean var1) {
- super.setAllowJavaEncodingName(var1);
- }
-
- public void setPreserveSpace(boolean var1) {
- throw new IllegalArgumentException("setPreserveSpace not supported");
- }
-
- public void setEndBy1stError(boolean var1) {
- this.isEndBy1stError = var1;
- super.setContinueAfterFatalError(!var1);
- }
-
- public TXDocument readStream(InputStream var1) {
- return this.readStream(new Source(var1));
- }
-
- public TXDocument readStream(Reader var1) {
- return this.readStream(new Source(var1));
- }
-
- public TXDocument readStream(Source var1) {
- try {
- InputSource var2 = new InputSource();
- var2.setByteStream(var1.getInputStream());
- var2.setCharacterStream(var1.getReader());
- var2.setEncoding(var1.getEncoding());
- if (this.streamProducer instanceof Stderr) {
- Stderr var3 = (Stderr)this.streamProducer;
- var2.setPublicId(var3.getPublicId());
- var2.setSystemId(var3.getSystemId());
- }
-
- ((XMLParser)this).parse(var2);
- } catch (Exception var6) {
- } finally {
- ;
- }
-
- return (TXDocument)((NonValidatingTXDOMParser)this).getDocument();
- }
-
- public DTD readDTDStream(InputStream var1) throws IOException {
- return this.readDTDStream(new Source(var1));
- }
-
- public DTD readDTDStream(Reader var1) throws IOException {
- return this.readDTDStream(new Source(var1));
- }
-
- public DTD readDTDStream(Source var1) throws IOException {
- TXDocument var2 = super.fDocument;
-
- try {
- if (super.fDocument == null) {
- super.fDocument = new TXDocument();
- } else {
- super.fDocument = (TXDocument)super.fDocument.cloneNode(false);
- }
-
- InputSource var3 = new InputSource();
- var3.setByteStream(var1.getInputStream());
- var3.setCharacterStream(var1.getReader());
- var3.setEncoding(var1.getEncoding());
- this.parseDTD(var3);
- } catch (IOException var7) {
- this.errorString1(88, ((Throwable)var7).getMessage());
- } catch (Exception var8) {
- } finally {
- ;
- }
-
- DTD var10 = super.fDocument.getDTD();
- super.fDocument = var2;
- return var10;
- }
-
- public final void parseDTD(InputSource var1) throws SAXException, IOException {
- if (super.fParseInProgress) {
- throw new SAXException("parse may not be called while parsing");
- } else {
- if (super.fNeedReset) {
- ((TXDOMParser)this).resetOrCopy();
- }
-
- try {
- ((NonValidatingTXDOMParser)this).checkHandlers();
- super.fParseInProgress = true;
- super.fNeedReset = true;
- ((DefaultScanner)super.fScanner).scanDTD(var1);
- super.fParseInProgress = false;
- } catch (SAXException var3) {
- super.fParseInProgress = false;
- throw var3;
- } catch (IOException var4) {
- super.fParseInProgress = false;
- throw var4;
- } catch (Exception var5) {
- super.fParseInProgress = false;
- throw new SAXException(var5);
- }
- }
- }
-
- public void addNoRequiredAttributeHandler(NoRequiredAttributeHandler var1) {
- throw new IllegalArgumentException("addNoRequiredAttributeHandler is not supported");
- }
-
- public void setErrorNoByteMark(boolean var1) {
- throw new IllegalArgumentException("setErrorNoByteMark not supported");
- }
-
- public int getReaderBufferSize() {
- throw new IllegalArgumentException("setReaderBufferSize is not supported");
- }
-
- public void setReaderBufferSize(int var1) {
- throw new IllegalArgumentException("setReaderBufferSize is not supported");
- }
-
- public void setWarningRedefinedEntity(boolean var1) {
- this.isWarningRedefinedEntity = var1;
- }
-
- public void setWarningNoXMLDecl(boolean var1) {
- this.isWarningNoXMLDecl = var1;
- }
-
- public void setWarningNoDoctypeDecl(boolean var1) {
- this.isWarningNoDoctypeDecl = var1;
- }
-
- public void stop() {
- ((XMLParser)this).getParserState().getScanner().stop();
- }
-
- protected void handleError(String var1, String var2) throws Exception {
- Locator var3 = ((XMLParser)this).getLocator();
- this.errorListener.error(var3.getSystemId(), var3.getLineNumber(), var3.getColumnNumber(), var1, var2);
- super.handleError(var1, var2);
- }
-
- public void reset() {
- super.reset();
- this.warnCount = 0;
- this.validityFailureCount = 0;
- this.errorCount = 0;
- this.errorListener = null;
- this.streamProducer = null;
- this.tagHandler = null;
- this.preRootHandlers = null;
- this.piHandlers = null;
- this.elementHandlerHash = null;
- this.referenceHandler = null;
- }
-
- Node getCurrentNode() {
- return super.fCurrentNode;
- }
-
- void setRealParent(Node var1) {
- Node var2 = (Node)super.fNodeStack.peek();
- var2.removeChild(var2.getLastChild());
- var2.appendChild(var1);
- }
-
- TXElement getCurrentParent() {
- return (TXElement)super.fCurrentParent;
- }
-
- private final void errorString1(int var1, String var2) throws Exception {
- String var3 = ErrorCode.getErrorKey(var1);
- if (((XMLParser)this).errorHandlingEnabled() || ((XMLParser)this).isFatal(var3)) {
- String[] var4 = new String[]{var2};
- String var5 = ((XMLParser)this).getErrorMsgString(var3, var4);
- this.handleError(var3, var5);
- }
- }
-
- private final void errorString4(int var1, String var2, String var3, String var4, String var5) throws Exception {
- String var6 = ErrorCode.getErrorKey(var1);
- if (((XMLParser)this).errorHandlingEnabled() || !((XMLParser)this).getContinueAfterFatalError() && ((XMLParser)this).isFatal(var6)) {
- String[] var7 = new String[]{var2, var3, var4, var5};
- String var8 = ((XMLParser)this).getErrorMsgString(var6, var7);
- this.handleError(var6, var8);
- }
- }
-
- void TXNamespaceCode(TXElement var1, int var2, int var3) {
- TXAttribute[] var4 = var1.getAttributeArray();
- if (this.isProcessNamespace) {
- try {
- String[] var5 = new String[var4.length];
- AttrPool var6 = ((XMLParser)this).getParserState().getAttrPool();
- var6.getAttributeList(var3);
-
- for(int var7 = 0; var7 < var4.length; ++var7) {
- String var8 = var4[var7].getNodeName();
- int var9 = this.checkNamespace(var1, var8);
- if (var9 != -1) {
- this.errorString1(var9, var8);
- }
-
- if (var4[var7].getValue().length() == 0 && var8.startsWith("xmlns:")) {
- this.errorString1(142, var8);
- }
-
- var5[var7] = var4[var7].getNSLocalName();
- String var10 = var4[var7].getNSName();
- if (var10 != null) {
- for(int var11 = 0; var11 < var7; ++var11) {
- if (var5[var11].equals(var5[var7])) {
- String var12 = var4[var11].getNSName();
- if (var12 != null && var12.equals(var10)) {
- this.errorString4(144, var4[var7].getNodeName(), var10, var5[var7], var4[var11].getNodeName());
- }
- }
- }
- }
- }
-
- int var14 = this.checkNamespace(var1, var1.getName());
- if (var14 != -1) {
- ((XMLParser)this).error1(var14, var2);
- return;
- }
- } catch (Exception var13) {
- return;
- }
- }
-
- }
-
- int checkNamespace(TXElement var1, String var2) {
- int var3 = var2.indexOf(58);
- if (var3 < 0) {
- return -1;
- } else if (var1.getNamespaceForPrefix(var2.substring(0, var3)) == null) {
- return 136;
- } else {
- return var2.indexOf(58, var3 + 1) >= 0 ? 135 : -1;
- }
- }
-
- // $FF: synthetic method
- static boolean access$0() {
- return false;
- }
-
- // $FF: synthetic method
- static String access$1() {
- return " ALL ";
- }
- }
-